ostree.git
14 years agocore: Support --owner-uid and --owner-gid options for commit
Colin Walters [Sun, 18 Dec 2011 22:36:46 +0000 (17:36 -0500)]
core: Support --owner-uid and --owner-gid options for commit

This allows us to more easily import user-built tarballs into
a root-owned OSTree repo.

14 years agotests: Ensure we quote grep pattern
Colin Walters [Sun, 18 Dec 2011 22:35:30 +0000 (17:35 -0500)]
tests: Ensure we quote grep pattern

Otherwise we fail if the pattern starts with -

14 years agocore: In user mode checkouts of archives, use hard links
Colin Walters [Thu, 15 Dec 2011 21:12:31 +0000 (16:12 -0500)]
core: In user mode checkouts of archives, use hard links

Now that we've done all the gyrations to separate content from
metadata in archives, we can just hard link when doing user checkouts.

14 years agocore: Fix a few memory leaks
Colin Walters [Thu, 15 Dec 2011 20:13:51 +0000 (15:13 -0500)]
core: Fix a few memory leaks

14 years agognomeos: Don't make device files
Colin Walters [Thu, 15 Dec 2011 20:03:29 +0000 (15:03 -0500)]
gnomeos: Don't make device files

We don't need them any more inside a chroot now that we have
ostbuild-user-chroot.

14 years agocore: INCOMPATIBLE CHANGE: Split archive files in two parts (meta and content)
Colin Walters [Thu, 15 Dec 2011 18:11:47 +0000 (13:11 -0500)]
core: INCOMPATIBLE CHANGE: Split archive files in two parts (meta and content)

This will allow us to have hardlink checkouts of archives.  A key use
case here is an archive repo of an OS (with root-owned files etc.)
where we want to do builds in a user tree.

A positive side effect of doing things this way is that now the SHA256
checksums for a given file should be identical regardless of whether
it's stored in an archive or bare repository.

14 years agocore: Don't insert null byte in temporary file names
Colin Walters [Thu, 15 Dec 2011 18:10:41 +0000 (13:10 -0500)]
core: Don't insert null byte in temporary file names

14 years agocore: Add utility functions to convert a OstreeObjectType to/from a string
Colin Walters [Thu, 15 Dec 2011 18:09:51 +0000 (13:09 -0500)]
core: Add utility functions to convert a OstreeObjectType to/from a string

14 years agocore: INCOMPATIBLE CHANGE: Name repo files with their type (e.g. .dirmeta)
Colin Walters [Fri, 9 Dec 2011 17:40:41 +0000 (12:40 -0500)]
core: INCOMPATIBLE CHANGE: Name repo files with their type (e.g. .dirmeta)

This makes inspection easier.  Internally the code gets simpler because
metadata and files are more unified; there is just one object type.

14 years agoosbuild: Make a MS_NOSUID bind mount over /
Colin Walters [Mon, 12 Dec 2011 17:13:32 +0000 (12:13 -0500)]
osbuild: Make a MS_NOSUID bind mount over /

This closes a serious issue in that we still do a uid switch to 0 when
executing a suid binary, even though we're not gaining capabilities.

14 years agocore: Initialize variables in fsck
Colin Walters [Thu, 8 Dec 2011 23:23:13 +0000 (18:23 -0500)]
core: Initialize variables in fsck

Otherwise we segfault on an unhandled filename.

14 years agocore: Change fsck to use packfile parsing API
Colin Walters [Thu, 8 Dec 2011 23:04:37 +0000 (18:04 -0500)]
core: Change fsck to use packfile parsing API

14 years agocore: s/pack/archived/
Colin Walters [Thu, 8 Dec 2011 22:45:37 +0000 (17:45 -0500)]
core: s/pack/archived/

This completes the rename from the previous commit.

14 years agocore: Make ot_transfer_out_value() take a & for the second argument
Colin Walters [Thu, 8 Dec 2011 22:31:45 +0000 (17:31 -0500)]
core: Make ot_transfer_out_value() take a & for the second argument

As Ray Strode argued, it's confusing to have something that looks like
a function be magical.  And OT_TRANSFER_OUT_VALUE is uglier.

14 years agocore: INCOMPATIBLE CHANGE: Rename .packfile to .archive
Colin Walters [Thu, 8 Dec 2011 22:15:59 +0000 (17:15 -0500)]
core: INCOMPATIBLE CHANGE: Rename .packfile to .archive

It's too confusing that we call the mode "archive" but the actual
files ".packfile".  Also, git already has a "packfile" that serves a
totally different purpose.

14 years agocore: Switch is_archive to an enumeration
Colin Walters [Thu, 8 Dec 2011 22:05:16 +0000 (17:05 -0500)]
core: Switch is_archive to an enumeration

This is in preparation for adding a third mode.

14 years agocore: Delete some dead code
Colin Walters [Thu, 8 Dec 2011 19:55:41 +0000 (14:55 -0500)]
core: Delete some dead code

14 years agocore: Clean up checkout code
Colin Walters [Thu, 8 Dec 2011 15:24:35 +0000 (10:24 -0500)]
core: Clean up checkout code

Take a GFile * for destination.  Also, we only need one recursive
function, not two.

14 years agouser-chroot: Add --unshare-pid, --unshare-net, and --mount-proc
Colin Walters [Wed, 7 Dec 2011 15:52:42 +0000 (10:52 -0500)]
user-chroot: Add --unshare-pid, --unshare-net, and --mount-proc

To use CLONE_NEWPID we have to actually call clone() because it's
not supported by unshare().

To enable CLONE_NEWPID to be useful, we have to allow creating a new
proc mount rather than binding an existing one.

14 years agoostbuild: Add --unshare-ipc flag for user-chroot
Colin Walters [Wed, 7 Dec 2011 14:48:38 +0000 (09:48 -0500)]
ostbuild: Add --unshare-ipc flag for user-chroot

This optionally closes down more paths to the host, which is
a good thing.

14 years agocore: Add -U option for checkout to skip lchown() and xattrs
Colin Walters [Wed, 7 Dec 2011 02:38:04 +0000 (21:38 -0500)]
core: Add -U option for checkout to skip lchown() and xattrs

This is useful for checking out an OS filesystem tree as a regular
user, and not caring about /dev and stuff.

14 years agocore: Ensure we chown created directories too
Colin Walters [Wed, 7 Dec 2011 01:16:03 +0000 (20:16 -0500)]
core: Ensure we chown created directories too

14 years agocore: Remove some useless wrapping of packfile unpacking in checkout
Colin Walters [Wed, 7 Dec 2011 01:09:09 +0000 (20:09 -0500)]
core: Remove some useless wrapping of packfile unpacking in checkout

14 years agoostbuild: Compile and install ostbuild-user-chroot
Colin Walters [Wed, 7 Dec 2011 00:37:01 +0000 (19:37 -0500)]
ostbuild: Compile and install ostbuild-user-chroot

It still needs to be made setuid.

14 years agoostbuild: Also allow making directories read-only
Colin Walters [Wed, 7 Dec 2011 00:36:42 +0000 (19:36 -0500)]
ostbuild: Also allow making directories read-only

14 years agoostbuild: Clarify "safely" for user-chroot
Colin Walters [Tue, 6 Dec 2011 19:39:30 +0000 (14:39 -0500)]
ostbuild: Clarify "safely" for user-chroot

14 years agoostbuild: Recursively make mount points private
Colin Walters [Tue, 6 Dec 2011 19:36:57 +0000 (14:36 -0500)]
ostbuild: Recursively make mount points private

This ensures we're not going to mutate any global state.

14 years agoostbuild: Allow binding arbitrary directories, don't hardcode /proc /dev
Colin Walters [Tue, 6 Dec 2011 19:06:45 +0000 (14:06 -0500)]
ostbuild: Allow binding arbitrary directories, don't hardcode /proc /dev

This is just more flexible, and eventually we want this to be a
generic user-chroot tool.

14 years agoostbuild: Ensure user chroot mounts are not shared
Colin Walters [Tue, 6 Dec 2011 17:18:17 +0000 (12:18 -0500)]
ostbuild: Ensure user chroot mounts are not shared

It's possible that the root filesystem mount is global; we need
to undo that in order to be sure that our "private" bind mounts
really are private.

14 years agoostbuild: Update user-chroot to bind mount /proc and /dev
Colin Walters [Tue, 6 Dec 2011 15:43:01 +0000 (10:43 -0500)]
ostbuild: Update user-chroot to bind mount /proc and /dev

14 years agocore: Major cleanup to internal import API
Colin Walters [Mon, 5 Dec 2011 19:21:18 +0000 (14:21 -0500)]
core: Major cleanup to internal import API

14 years agocore: Further unify code for importing from local FS and libarchive
Colin Walters [Mon, 5 Dec 2011 16:20:14 +0000 (11:20 -0500)]
core: Further unify code for importing from local FS and libarchive

Note this change makes it so we no longer call link() from an import
filesystem tree to the repository.  This is a Good Thing really; it
makes local FS commits slower, but also less prone to corruption.

14 years agocore: Ensure we initialize checksum in FIFO case too
Colin Walters [Mon, 5 Dec 2011 16:15:12 +0000 (11:15 -0500)]
core: Ensure we initialize checksum in FIFO case too

14 years agocore: Add _from_input variant of checksum API
Colin Walters [Mon, 5 Dec 2011 15:28:42 +0000 (10:28 -0500)]
core: Add _from_input variant of checksum API

14 years agoostbuild: ostbuild-user-chroot: New Linux-specific utility for safe chroots
Colin Walters [Sun, 4 Dec 2011 21:44:19 +0000 (16:44 -0500)]
ostbuild: ostbuild-user-chroot: New Linux-specific utility for safe chroots

14 years agognomeos: Make run script transparently update existing FS image
Colin Walters [Sun, 4 Dec 2011 19:56:21 +0000 (14:56 -0500)]
gnomeos: Make run script transparently update existing FS image

This is noticeably faster.

14 years agognomeos: commit-yocto-build.sh: Directly import tar files
Colin Walters [Sun, 4 Dec 2011 19:55:33 +0000 (14:55 -0500)]
gnomeos: commit-yocto-build.sh: Directly import tar files

Oh wow...this is fast.

14 years agocore: Fix handling of hardlinks for tar commits
Colin Walters [Sun, 4 Dec 2011 19:38:30 +0000 (14:38 -0500)]
core: Fix handling of hardlinks for tar commits

We were creating files with the wrong name.  Add a test.

14 years agocore: Support for committing from any libarchive-supported format
Colin Walters [Sun, 4 Dec 2011 17:14:08 +0000 (12:14 -0500)]
core: Support for committing from any libarchive-supported format

We really want the ability to take a .tar.gz and directly import
it into a repository, without creating a temporary filesystem tree.

First, doing it this way is significantly faster.  Also, this allows
us to handle importing tar files with e.g. uid 0 files into packed
repositories as non-root, which is very useful for tests and builds.

14 years agocore: Fix a memory leak in checkout
Colin Walters [Sun, 4 Dec 2011 19:08:21 +0000 (14:08 -0500)]
core: Fix a memory leak in checkout

14 years agocore: Handle NULL xattrs in packfile generation, throw error on invalid mode
Colin Walters [Sun, 4 Dec 2011 18:11:21 +0000 (13:11 -0500)]
core: Handle NULL xattrs in packfile generation, throw error on invalid mode

14 years agocore: Correctly map S_ISDIR to G_FILE_TYPE_DIRECTORY
Colin Walters [Sun, 4 Dec 2011 18:10:37 +0000 (13:10 -0500)]
core: Correctly map S_ISDIR to G_FILE_TYPE_DIRECTORY

14 years agocore: Clean up filename utility API
Colin Walters [Sun, 4 Dec 2011 17:12:34 +0000 (12:12 -0500)]
core: Clean up filename utility API

Remove more unused functions, and change pathname splitting to handle
more cases like duplicate //, and to throw an error on .. as a filename.

14 years agocore: Initialize checksums for non-regular files, handle NULL xattrs
Colin Walters [Sun, 4 Dec 2011 17:11:29 +0000 (12:11 -0500)]
core: Initialize checksums for non-regular files, handle NULL xattrs

14 years agocore: Delete some dead utility code
Colin Walters [Sat, 3 Dec 2011 00:54:53 +0000 (19:54 -0500)]
core: Delete some dead utility code

14 years agocore: New ot_transfer_out_value() macro
Colin Walters [Fri, 2 Dec 2011 23:17:06 +0000 (18:17 -0500)]
core: New ot_transfer_out_value() macro

This makes out values considerably less typing.

14 years agocore: Ensure we clean up leftover directories during merge
Colin Walters [Fri, 2 Dec 2011 22:58:45 +0000 (17:58 -0500)]
core: Ensure we clean up leftover directories during merge

(Not sure why this regressed)

14 years agocore: Fix packed file creation
Colin Walters [Fri, 2 Dec 2011 22:49:57 +0000 (17:49 -0500)]
core: Fix packed file creation

We were calculating the wrong checksum, and also mistakenly
not using packed files in archive mode for non-regular files.

14 years agocore: Don't use g_file_delete(), it calls into g_vfs_get_default()
Colin Walters [Fri, 2 Dec 2011 19:32:25 +0000 (14:32 -0500)]
core: Don't use g_file_delete(), it calls into g_vfs_get_default()

For some (probably crazy) reason.  Skipping this and calling
unlink() directly makes 'strace' MUCH smaller.

14 years agocore: Avoid reading regular file data twice when archiving
Colin Walters [Fri, 2 Dec 2011 19:23:01 +0000 (14:23 -0500)]
core: Avoid reading regular file data twice when archiving

14 years agocore: Further unify API to create files
Colin Walters [Fri, 2 Dec 2011 16:22:32 +0000 (11:22 -0500)]
core: Further unify API to create files

We now have just one place which writes to the filesystem.  Wrap a
temporary file allocation API on top of that.

14 years agocore: Use g_io_error_from_errno() to ensure we have more useful error codes
Colin Walters [Fri, 2 Dec 2011 16:39:21 +0000 (11:39 -0500)]
core: Use g_io_error_from_errno() to ensure we have more useful error codes

14 years agocore: Move pack file parsing into core, add ostree_create_file_from_input() API
Colin Walters [Fri, 2 Dec 2011 15:11:09 +0000 (10:11 -0500)]
core: Move pack file parsing into core, add ostree_create_file_from_input() API

This moves us closer to consistently passing around a triple of:
  (GFileInfo *info, GVariant *xattrs, GInputStream *content)
Which will help the libarchive work.

14 years agocore: Tweak dir metadata importing code for libarchive work
Colin Walters [Fri, 2 Dec 2011 00:37:47 +0000 (19:37 -0500)]
core: Tweak dir metadata importing code for libarchive work

This will allow us to share a bit more code.

14 years agocore: Modify pack file importer to also optionally checksum
Colin Walters [Fri, 2 Dec 2011 00:23:12 +0000 (19:23 -0500)]
core: Modify pack file importer to also optionally checksum

For future work on importing from an archive.

14 years agocore: Add ot_gfile_create_tmp_symlink()
Colin Walters [Fri, 2 Dec 2011 00:20:54 +0000 (19:20 -0500)]
core: Add ot_gfile_create_tmp_symlink()

In some cases we'll need the ability to create a symbolic link, then
actually import it.

14 years agocore: Propagate GCancellable a bit from the import APIs
Colin Walters [Thu, 1 Dec 2011 03:20:25 +0000 (22:20 -0500)]
core: Propagate GCancellable a bit from the import APIs

14 years agocore: Drop some dead code from packfile writing, expose GInputStream API too
Colin Walters [Thu, 1 Dec 2011 03:15:05 +0000 (22:15 -0500)]
core: Drop some dead code from packfile writing, expose GInputStream API too

We never actually dropped into the bits to write metadata as packfiles,
because such a thing doesn't exist.

Also add a GInputStream-based API for writing packfiles.

14 years agocore: Extract stage_and_checksum() internal API
Colin Walters [Thu, 1 Dec 2011 02:15:46 +0000 (21:15 -0500)]
core: Extract stage_and_checksum() internal API

This will be used for staging both metadata and data consistently
before actually importing it.

14 years agocore: Add ot_gfile_create_tmp() to utils, use it
Colin Walters [Thu, 1 Dec 2011 01:14:24 +0000 (20:14 -0500)]
core: Add ot_gfile_create_tmp() to utils, use it

14 years agorepo: Don't call g_hash_table_destroy on a NULL hash
Colin Walters [Thu, 1 Dec 2011 01:23:10 +0000 (20:23 -0500)]
repo: Don't call g_hash_table_destroy on a NULL hash

14 years agocore: Split pull functionality into separate ostree-pull binary
Colin Walters [Wed, 30 Nov 2011 14:21:14 +0000 (09:21 -0500)]
core: Split pull functionality into separate ostree-pull binary

This is to avoid everything depending on libsoup.

14 years agocore: Make libostree.so an installed library
Colin Walters [Tue, 29 Nov 2011 23:25:07 +0000 (18:25 -0500)]
core: Make libostree.so an installed library

This will make it easier to have multiple binaries.

14 years agoostbuild: Relicense under LGPLv2+, tweak artifact generation
Colin Walters [Tue, 29 Nov 2011 21:15:04 +0000 (16:15 -0500)]
ostbuild: Relicense under LGPLv2+, tweak artifact generation

14 years agocore: Use ot_clear_checksum()
Colin Walters [Tue, 29 Nov 2011 19:06:54 +0000 (14:06 -0500)]
core: Use ot_clear_checksum()

14 years agootutil: New utility functions
Colin Walters [Tue, 29 Nov 2011 18:42:05 +0000 (13:42 -0500)]
otutil: New utility functions

14 years agocore: Remove an unused variable
Colin Walters [Tue, 29 Nov 2011 01:45:27 +0000 (20:45 -0500)]
core: Remove an unused variable

14 years agocore: checksum builtin: Actually quit main loop on error too
Colin Walters [Tue, 29 Nov 2011 00:34:54 +0000 (19:34 -0500)]
core: checksum builtin: Actually quit main loop on error too

14 years agocore: Make commit always operate on directory contents, not file list
Colin Walters [Sun, 27 Nov 2011 23:03:05 +0000 (18:03 -0500)]
core: Make commit always operate on directory contents, not file list

This simplifies things significantly, at some cost in flexibility.
We'll later add the ability to e.g. filter out files by regular
expression.

14 years agocore: Some tweaks to ls output
Colin Walters [Mon, 28 Nov 2011 15:17:49 +0000 (10:17 -0500)]
core: Some tweaks to ls output

14 years agognomeos: Switch to using pseudo for commits
Colin Walters [Mon, 28 Nov 2011 01:43:44 +0000 (20:43 -0500)]
gnomeos: Switch to using pseudo for commits

This is noticeably faster.

One side effect here is that xattrs are empty, which is actually
a good thing.

14 years agognomeos: Pull in pseudo into -dev image
Colin Walters [Mon, 28 Nov 2011 01:34:30 +0000 (20:34 -0500)]
gnomeos: Pull in pseudo into -dev image

As a potential 'fakeroot' implementation.

14 years agoostbuild: Don't run fakeroot if we are root
Colin Walters [Mon, 28 Nov 2011 01:31:23 +0000 (20:31 -0500)]
ostbuild: Don't run fakeroot if we are root

For efficiency reasons, as well as a quick shortcut to avoid pulling
fakeroot into the gnomeos yocto layer.

14 years agocore: Fix a compiler warning
Colin Walters [Mon, 28 Nov 2011 01:15:07 +0000 (20:15 -0500)]
core: Fix a compiler warning

14 years agocore: Add ls builtin
Colin Walters [Mon, 28 Nov 2011 01:10:48 +0000 (20:10 -0500)]
core: Add ls builtin

14 years agocore: Don't default to "master" for show, there is no default branch anymore
Colin Walters [Sun, 27 Nov 2011 23:46:11 +0000 (18:46 -0500)]
core: Don't default to "master" for show, there is no default branch anymore

14 years agoconfigure: Actually disable soup-gnome if not found
Colin Walters [Sun, 27 Nov 2011 23:08:18 +0000 (18:08 -0500)]
configure: Actually disable soup-gnome if not found

14 years agognomeos: include -dev packages too in -dev image
Colin Walters [Sun, 27 Nov 2011 23:03:22 +0000 (18:03 -0500)]
gnomeos: include -dev packages too in -dev image

Otherwise we don't get headers and stuff...

14 years agocore: Add asynchronous checksum API, use it in checksum builtin
Colin Walters [Sun, 27 Nov 2011 22:21:04 +0000 (17:21 -0500)]
core: Add asynchronous checksum API, use it in checksum builtin

14 years agognomeos: Add basic device files in /dev
Colin Walters [Sun, 27 Nov 2011 18:12:22 +0000 (13:12 -0500)]
gnomeos: Add basic device files in /dev

So we're more usable in a chroot for compiling software.

14 years agognomeos: Fetch ostree from file:/// URI
Colin Walters [Sun, 27 Nov 2011 18:08:32 +0000 (13:08 -0500)]
gnomeos: Fetch ostree from file:/// URI

This means anyone not using /src/ostree for the checkout will have
to change it, but it's way less annoying for me not to have to push
changes to git.

14 years agoostbuild: Split nice/logger program out, merge make/makeinstall into one executable
Colin Walters [Sun, 27 Nov 2011 18:07:33 +0000 (13:07 -0500)]
ostbuild: Split nice/logger program out, merge make/makeinstall into one executable

14 years agodaemon: Allow running as non-root in test mode
Colin Walters [Sun, 27 Nov 2011 16:34:03 +0000 (11:34 -0500)]
daemon: Allow running as non-root in test mode

14 years agognomeos: Prefix branch names with -yocto to clarify their origin
Colin Walters [Fri, 25 Nov 2011 17:02:03 +0000 (12:02 -0500)]
gnomeos: Prefix branch names with -yocto to clarify their origin

Also add git to the dev image.

14 years agognomeos: Add ncurses to base
Colin Walters [Fri, 25 Nov 2011 17:01:38 +0000 (12:01 -0500)]
gnomeos: Add ncurses to base

14 years agocore: Minor code cleanup
Colin Walters [Fri, 25 Nov 2011 17:01:05 +0000 (12:01 -0500)]
core: Minor code cleanup

14 years agoostbuild: Rename osbuild to ostbuild, clean up old C files
Colin Walters [Fri, 25 Nov 2011 17:00:16 +0000 (12:00 -0500)]
ostbuild: Rename osbuild to ostbuild, clean up old C files

14 years agocore: Ad ot_clear_gvariant(), use it
Colin Walters [Tue, 22 Nov 2011 15:20:10 +0000 (10:20 -0500)]
core: Ad ot_clear_gvariant(), use it

This saves us a conditional.

14 years agognomeos: Make python actually work, install bash by default
Colin Walters [Tue, 22 Nov 2011 15:03:12 +0000 (10:03 -0500)]
gnomeos: Make python actually work, install bash by default

14 years agocore: A bit more daemon work
Colin Walters [Tue, 22 Nov 2011 15:02:49 +0000 (10:02 -0500)]
core: A bit more daemon work

14 years agocore: Move merge dirs code into gio utils
Colin Walters [Mon, 21 Nov 2011 20:03:09 +0000 (15:03 -0500)]
core: Move merge dirs code into gio utils

14 years agocore: Stub out a system daemon
Colin Walters [Mon, 21 Nov 2011 01:55:24 +0000 (20:55 -0500)]
core: Stub out a system daemon

14 years agognomeos: Check out both -base and -dev roots
Colin Walters [Mon, 21 Nov 2011 01:50:14 +0000 (20:50 -0500)]
gnomeos: Check out both -base and -dev roots

This makes it easier to boot into either.

14 years agoostree-init: Also trim trailing newline from arguments
Colin Walters [Mon, 21 Nov 2011 01:49:45 +0000 (20:49 -0500)]
ostree-init: Also trim trailing newline from arguments

Otherwise the parsed argument is corrupted.

14 years agoTODO: Update
Colin Walters [Mon, 21 Nov 2011 01:49:15 +0000 (20:49 -0500)]
TODO: Update

14 years agognomeos: Add -x86 tag to builds
Colin Walters [Sat, 19 Nov 2011 19:03:18 +0000 (14:03 -0500)]
gnomeos: Add -x86 tag to builds

Since later we'll want -x86_64 too.

14 years agocore: Rework argument parsing
Colin Walters [Sat, 19 Nov 2011 19:02:21 +0000 (14:02 -0500)]
core: Rework argument parsing

Default to /sysroot/ostree/repo when run as root.  Also better
handle the requires-repo flag.

14 years agognomeos: local-clone into built image
Colin Walters [Sat, 19 Nov 2011 15:52:17 +0000 (10:52 -0500)]
gnomeos: local-clone into built image

This way we have the whole history in the image, and we can start
to demo things like switching roots, pulling etc.

14 years agocore: Ensure data is properly initialized
Colin Walters [Sat, 19 Nov 2011 15:45:53 +0000 (10:45 -0500)]
core: Ensure data is properly initialized

Avoids a crash if we bail early.

14 years agocore: Add local-clone builtin
Colin Walters [Fri, 18 Nov 2011 23:50:53 +0000 (18:50 -0500)]
core: Add local-clone builtin

This is useful for converting between e.g. archive and non-archive
repositories.